package main

import "fmt"

var myChan = make(chan int, 2)

//这里放入chan的元素超出容量，这行代码在main函数中会发生死锁
func add() {
	defer func() {
		if err := recover(); err != nil {
			fmt.Println(err)
		}
	}()
	myChan <- 1
	myChan <- 1
	myChan <- 1
	fmt.Println("因为上面代码等待执行，所以这句话不会执行")
}

func main() {
	//在goroutine中，发生持久等待的时候，协程会持续等待，不会抛出死锁的error
	go add()
	for {
	}
}
